﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Configuration;
using System.IO;

namespace Agente
{
    class Config
    {
        private string ip_manager = "";
        private string ip_agente = "";
        private int puerto_agente;
        private string path = "";

        public Config(string path) {
            this.path = path;
            CargarConfiguracion();
        }

        public string Ip_agente
        {
            get { return ip_agente; }
            set { ip_agente = value; }
        }

        public string Ip_manager
        {
            get { return ip_manager; }
            set { ip_manager = value; }
        }

        public int Puerto_agente
        {
            get { return puerto_agente; }
            set { puerto_agente = value; }
        }

        private void CargarConfiguracion()
        {

            Console.WriteLine("Obteniendo configuracion...");
            
            // Hay que armar el XML
            string path = ConfigurationManager.AppSettings["Path"];

            if (File.Exists(path))
            {
                XmlDocument xDoc = new XmlDocument();

                xDoc.Load(path);

                #region // Carga información de Agente
                if (xDoc.SelectNodes("//CONFIGURACION//AGENTE").Count == 1)
                {
                    XmlNode managerNode = xDoc.SelectSingleNode("//CONFIGURACION//AGENTE");
                    Puerto_agente = int.Parse(managerNode.SelectSingleNode("PUERTO").InnerText);
                    Ip_agente = managerNode.SelectSingleNode("IP").InnerText;
                }
                else
                {
                    Console.WriteLine("Error: configuracion del agente");
                }
                #endregion

                #region // Carga de direccion del Manager
                if (xDoc.SelectNodes("//CONFIGURACION//MANAGER").Count == 1)
                {
                    XmlNode brodNode = xDoc.SelectSingleNode("//CONFIGURACION//MANAGER");
                    Ip_manager = brodNode.SelectSingleNode("IP").InnerText;
                }
                else
                {
                    Console.WriteLine("Error: configuracion del manager");
                }
                #endregion
            }
            else
            {
                Console.WriteLine("Ruta de configuracion no encontrada..");
                Console.Read();
                Environment.Exit(0);
            }
        }

    }
}
